// 导入 dayjs 库和中文语言包
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';

// 设置 dayjs 的语言环境为中文
dayjs.locale('zh-cn');

// 定义日期时间格式常量
const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
const DATE_FORMAT = 'YYYY-MM-DD';

// 定义一个函数，将日期格式化为日期时间格式
const formatToDateTime = (date, format = DATE_TIME_FORMAT) => {
  return dayjs(date).format(format);
};

// 定义一个函数，将日期格式化为日期格式
const formatToDate = (date, format = DATE_FORMAT) => {
  return dayjs(date).format(format);
};

// 定义一个函数，将当前时间格式化为指定格式
const formatNow = (format) => {
  return dayjs().format(format);
};

// 定义一个函数，获取当天的开始时间
const startOfDate = (format = DATE_TIME_FORMAT) => {
  return dayjs().startOf('date').format(format);
};

// 定义一个函数，获取当天的结束时间
const endOfDate = (format = DATE_TIME_FORMAT) => {
  return dayjs().endOf('date').format(format);
};

// 定义一个函数，获取指定的年月份的最后一天
const endOfMonth = (year, month, format = DATE_FORMAT) => {
  return dayjs(`${year}-${month}`).endOf('month').format(format);
};

// 定义一个函数，获取当前年份
const getYear = () => {
  return dayjs().year();
};

// 定义一个函数，获取当前月份
const getMonth = () => {
  return dayjs().month();
};

// 定义一个函数，获取当前月份的天数
const getDays = () => {
  return dayjs().daysInMonth();
};

// 导出这些函数，以便在其他模块中使用
export { formatToDateTime, formatToDate, formatNow, startOfDate, endOfDate, getYear, getMonth, getDays, endOfMonth };
